﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL.Entity;
using DAL.Persistencia;
using NewTierra.App_Code;

namespace NewTierra.Pages.Tools
{
    public partial class AddCadastrosSimples : BasePage
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            base.PageLoad();
            IniciarPerfil();

            if (!IsPostBack)
            {
                PopularDados(sender, e);

            }
        }

        protected void IniciarPerfil()
        {
            switch (base.ObterPerfilLogado())
            {
                case (int)PerfilUsuario.Operacional:
                case (int)PerfilUsuario.Financeiro:
                    btnSalvarPais.Enabled = false;
                    btnAtualizarPais.Enabled = false;
                    btnSalvarCidade.Enabled = false;
                    btnAtualizarCidade.Enabled = false;
                    btnSalvarTipoServ.Enabled = false;
                    btnAtualizarTipoServ.Enabled = false;
                    btnSalvarTipoServCateg.Enabled = false;
                    btnAtualizarTipoServCateg.Enabled = false;
                    btnSalvarSubItem.Enabled = false;
                    btnAtualizarSubItem.Enabled = false;
                    btnSalvarItemSubServico.Enabled = false;
                    btnAtualizarItemSubServico.Enabled = false;
                    btnSalvarMercado.Enabled = false;
                    btnAtualizarMercado.Enabled = false;
                    btnSalvarBaseTarifaria.Enabled = false;
                    btnAtualizarBaseTarifaria.Enabled = false;
                    btnSalvarMoeda.Enabled = false;
                    btnAtualizarMoeda.Enabled = false;
                    btnSalvarRede.Enabled = false;
                    btnAtualizarRede.Enabled = false;
                    btnSalvarMEstacao.Enabled = false;
                    btnAtualizarMEstacao.Enabled = false;
                    btnSalvarMeal.Enabled = false;
                    btnAtualizarMeal.Enabled = false;
                    btnSalvarCategoria.Enabled = false;
                    btnAtualizarCategoria.Enabled = false;
                    btnSalvarCategEscrita.Enabled = false;
                    btnAtualizarCategEscrita.Enabled = false;
                    FileUploadCategoria.Enabled = false;
                    btnSalvarClass.Enabled = false;
                    btnAtualizarClass.Enabled = false;
                    btnSalvarAmenity.Enabled = false;
                    btnAtualizarAmenity.Enabled = false;
                    fupImagemAmenities.Enabled = false;
                    break;

                default:
                    break;
            }

        }

        #region Popular Dados

        protected void PopularDados(object sender, EventArgs e)
        {
            PopularDropTipoServ();
            PopularDropPaisCidade();
            PopularGridPais(txtNomePais.Text);
            PopularGridCidade(txtNomeCidade.Text);
            PopularGridMercados(txtNomeMercado.Text);
            PopularGridBaseTarifarias(txtNomeBaseTarifaria.Text);
            PopularGridMoeda(sender, e);
            PopularGridRedes(txtNomeRede.Text);
            PopularGridMEstacao();
            PopularGridCategorias(txtNomeCategoria.Text);
            PopularGridCategEscrita(txtNomeCategEscrita.Text);
            PopularGridClass(txtNomeClass.Text);
            PopularGridMeal(txtNomeMeal.Text);
            PopularGridTipoServ(txtNomeTipoServ.Text);
            PopularGridTipoServCateg(txtNomeTipoServCateg.Text);
            PopularGridItemSubServico();
            PopularGridSubItem();
            PopularAmenities();
        }

        protected void PopularGridPais(string nome)
        {
            try
            {
                PaisDAL p = new PaisDAL();

                GridCadPais.DataSource = p.ListarTodos(nome);
                GridCadPais.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgCadPais.Text = ex.Message;
            }
        }

        protected void PaginarDadosPais(object sender, GridViewPageEventArgs e)
        {
            GridCadPais.PageIndex = e.NewPageIndex;
            PopularGridPais(txtNomePais.Text);
        }

        protected void GridCadPais_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarPais = (ImageButton)e.Row.FindControl("EditarPais");

            if (EditarPais != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarPais);
            }
        }

        protected void PopularGridCidade(string nome)
        {
            try
            {
                CidadeDAL c = new CidadeDAL();

                GridCadCidade.DataSource = c.ListarTodos(nome);
                GridCadCidade.DataBind();

            }
            catch (Exception ex)
            {
                lblMsgCadCidade.Text = ex.Message;
            }
        }

        protected void PaginarDadosCidade(object sender, GridViewPageEventArgs e)
        {
            GridCadCidade.PageIndex = e.NewPageIndex;
            PopularGridCidade(txtNomeCidade.Text);
        }

        protected void GridCadCidade_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarCidade = (ImageButton)e.Row.FindControl("EditarCidade");

            if (EditarCidade != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarCidade);
            }
        }

        protected void PopularDropPaisCidade()
        {
            try
            {
                using (NewTierraEntities Con = new NewTierraEntities())
                {
                    ddlPaisCidade.DataSource = Con.Pais.OrderBy(c => c.PAIS_nome).ToList();
                    ddlPaisCidade.DataTextField = "PAIS_nome";
                    ddlPaisCidade.DataValueField = "PAIS_id";
                    ddlPaisCidade.DataBind();
                }
            }
            catch (Exception ex)
            {
                lblMsgCadCidade.Text = ex.Message;
            }
        }

        protected void PopularDropTipoServ()
        {
            try
            {
                ServicoTipoDAL std = new ServicoTipoDAL();

                ddlTipoServ.DataSource = std.ListarTodos();
                ddlTipoServ.DataValueField = "Tipo_id";
                ddlTipoServ.DataTextField = "Tipo_nome";
                ddlTipoServ.DataBind();

            }
            catch (Exception ex)
            {
                lblMsgCadTipoServCateg.Text = ex.Message;
            }
        }

        protected void PopularGridMercados(string nome)
        {
            try
            {
                MercadoDAL m = new MercadoDAL();

                GridMercado.DataSource = m.ListarTodos(nome);
                GridMercado.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgCadMercado.Text = ex.Message;
            }
        }

        protected void PaginarDadosMercado(object sender, GridViewPageEventArgs e)
        {
            GridMercado.PageIndex = e.NewPageIndex;
            PopularGridMercados(txtNomeMercado.Text);
        }

        protected void GridMercado_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarMercado = (ImageButton)e.Row.FindControl("EditarMercado");

            if (EditarMercado != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarMercado);
            }
        }

        protected void PopularGridBaseTarifarias(string nome)
        {
            try
            {
                BaseTarifariaDAL b = new BaseTarifariaDAL();
                GridBaseTarifaria.DataSource = b.ListarTodos(nome);
                GridBaseTarifaria.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgCadBaseTarifaria.Text = ex.Message;
            }
        }

        protected void PaginarDadosBaseTarifaria(object sender, GridViewPageEventArgs e)
        {
            GridBaseTarifaria.PageIndex = e.NewPageIndex;
            PopularGridBaseTarifarias(txtNomeBaseTarifaria.Text);
        }

        protected void GridBaseTarifaria_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarBaseTarifaria = (ImageButton)e.Row.FindControl("EditarBaseTarifaria");

            if (EditarBaseTarifaria != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarBaseTarifaria);
            }
        }

        protected void PopularGridMoeda(object sender, EventArgs e)
        {
            try
            {
                MoedaDAL m = new MoedaDAL();
                GridMoeda.DataSource = m.ListarTodos();
                GridMoeda.DataBind();

            }
            catch (Exception ex)
            {
                lblMsgCadMoeda.Text = ex.Message;
            }
        }

        protected void PaginarDadosMoeda(object sender, GridViewPageEventArgs e)
        {
            GridMoeda.PageIndex = e.NewPageIndex;
            PopularGridMoeda(sender, e);
        }

        protected void GridMoeda_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarMoeda = (ImageButton)e.Row.FindControl("EditarMoeda");

            if (EditarMoeda != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarMoeda);
            }
        }

        protected void PopularGridRedes(string nome)
        {
            try
            {
                RedeDAL m = new RedeDAL();
                GridRedes.DataSource = m.ListarTodos(nome);
                GridRedes.DataBind();

            }
            catch (Exception ex)
            {
                lblMsgCadMoeda.Text = ex.Message;
            }
        }

        protected void PaginarDadosRedes(object sender, GridViewPageEventArgs e)
        {
            GridRedes.PageIndex = e.NewPageIndex;
            PopularGridRedes(txtNomeRede.Text);
        }

        protected void GridRedes_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditaRedes = (ImageButton)e.Row.FindControl("EditaRedes");

            if (EditaRedes != null)
            {
                ScriptManager1.RegisterPostBackControl(EditaRedes);
            }
        }

        protected void PopularGridMEstacao()
        {
            try
            {
                MercadoEstacaoDAL med = new MercadoEstacaoDAL();

                GridMercadoEstacao.DataSource = med.ListarTodos();
                GridMercadoEstacao.DataBind();

            }
            catch (Exception ex)
            {
                lblMsgCadMEstacao.Text = ex.Message;
            }
        }

        protected void PaginarDadosMEstacao(object sender, GridViewPageEventArgs e)
        {
            GridMercadoEstacao.PageIndex = e.NewPageIndex;
            PopularGridMEstacao();
        }

        protected void GridMercadoEstacao_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarMEstacao = (ImageButton)e.Row.FindControl("EditarMEstacao");

            if (EditarMEstacao != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarMEstacao);
            }
        }

        protected void PopularGridCategorias(string nome)
        {
            try
            {
                TarifCategoriaDAL tcd = new TarifCategoriaDAL();

                GridViewCategorias.DataSource = tcd.ListarTodos(nome);
                GridViewCategorias.DataBind();

            }
            catch (Exception ex)
            {
                lblMsgCadCategoria.Text = ex.Message;
            }
        }

        protected void PaginarDadosCategorias(object sender, GridViewPageEventArgs e)
        {
            GridViewCategorias.PageIndex = e.NewPageIndex;
            PopularGridCategorias(txtNomeCategoria.Text);
        }

        protected void GridViewCategorias_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarCategoria = (ImageButton)e.Row.FindControl("EditarCategoria");

            if (EditarCategoria != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarCategoria);
            }
        }

        protected void PopularGridCategEscrita(string nome)
        {
            try
            {
                CategoriaEscritaDAL tcd = new CategoriaEscritaDAL();

                GridViewCategEscrita.DataSource = tcd.ListarTodos(nome);
                GridViewCategEscrita.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgCadCategEscrita.Text = ex.Message;
            }
        }

        protected void PaginarDadosCategEscrita(object sender, GridViewPageEventArgs e)
        {
            GridViewCategEscrita.PageIndex = e.NewPageIndex;
            PopularGridCategEscrita(txtNomeCategEscrita.Text);
        }

        protected void GridViewCategEscrita_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarCategoriaEscrita = (ImageButton)e.Row.FindControl("EditarCategoriaEscrita");

            if (EditarCategoriaEscrita != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarCategoriaEscrita);
            }

        }

        protected void PopularGridClass(string nome)
        {
            try
            {
                CategoriaDAL cd = new CategoriaDAL();

                GridClass.DataSource = cd.ListarTodos(nome);
                GridClass.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgCadClass.Text = ex.Message;
            }
        }

        protected void PaginarDadosClass(object sender, GridViewPageEventArgs e)
        {

            GridClass.PageIndex = e.NewPageIndex;
            PopularGridClass(txtNomeClass.Text);
        }

        protected void GridClass_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarClass = (ImageButton)e.Row.FindControl("EditarClass");

            if (EditarClass != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarClass);
            }
        }

        protected void PopularGridMeal(string nome)
        {
            try
            {
                BreakFastDAL cd = new BreakFastDAL();

                GridViewMeal.DataSource = cd.ListarTodos(nome);
                GridViewMeal.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgCadClass.Text = ex.Message;
            }
        }

        protected void PaginarDadosMeal(object sender, GridViewPageEventArgs e)
        {

            GridViewMeal.PageIndex = e.NewPageIndex;
            PopularGridMeal(txtNomeMeal.Text);
        }

        protected void GridViewMeal_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarMeal = (ImageButton)e.Row.FindControl("EditarMeal");

            if (EditarMeal != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarMeal);
            }
        }

        protected void PopularGridTipoServ(string nome)
        {
            try
            {
                ServicoTipoDAL cd = new ServicoTipoDAL();

                GridTipoServ.DataSource = cd.ListarTodos(nome);
                GridTipoServ.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgCadTipoServ.Text = ex.Message;
            }
        }

        protected void GridTipoServ_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarTipoServ = (ImageButton)e.Row.FindControl("EditarTipoServ");

            if (EditarTipoServ != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarTipoServ);
            }
        }

        protected void PopularGridTipoServCateg(string nome)
        {
            try
            {
                ServicoTipoCategDAL cd = new ServicoTipoCategDAL();

                GridTipoServCateg.DataSource = cd.ListarTodos(nome);
                GridTipoServCateg.DataBind();
            }
            catch (Exception ex)
            {
                lblMsgCadTipoServCateg.Text = ex.Message;
            }
        }

        protected void GridTipoServCateg_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ImageButton EditarTipoServCateg = (ImageButton)e.Row.FindControl("EditarTipoServCateg");

            if (EditarTipoServCateg != null)
            {
                ScriptManager1.RegisterPostBackControl(EditarTipoServCateg);
            }
        }

        protected void PopularGridItemSubServico()
        {
            try
            {
                ItemSubServicoDAL tcd = new ItemSubServicoDAL();

                GridItemSubServico.DataSource = tcd.ListarTodos();
                GridItemSubServico.DataBind();

            }
            catch (Exception ex)
            {
                lblMsgCadItemSubServico.Text = ex.Message;
            }
        }

        protected void PopularGridSubItem()
        {
            try
            {
                SubItemDAL sd = new SubItemDAL();

                GridSubItem.DataSource = sd.ListarTodos();
                GridSubItem.DataBind();

            }
            catch (Exception ex)
            {
                MostrarMsg(ex.Message);
            }
        }

        private void PopularAmenities()
        {
            //if (IsPostBack)
            //    return;

            //DataTable dt = new DataTable();
            //dt.Columns.Add("S_Amenities_id");
            //dt.Columns.Add("S_Amenities_nome");
            //dt.Columns.Add("Group");
            //dt.Columns.Add("S_Amenities_imgNome");

            //foreach (S_Amenities amenity in new AmenitiesDAL().ListarTodos())
            //{
            //    S_GroupAmenities group = new GroupAmenitiesDAL().ObterPorID(Convert.ToInt32(amenity.S_GroupAmenities_ID));
            //    dt.Rows.Add(amenity.S_Amenities_id, amenity.S_Amenities_nome, group.S_GroupAmenities_Name, amenity.S_Amenities_imgNome);
            //}

            grdAmenities.DataSource = new AmenitiesDAL().ListarTodosOj();
            grdAmenities.DataBind();

            ddlGrupos.DataSource = new GroupAmenitiesDAL().ListarTodos();
            ddlGrupos.DataValueField = "S_GroupAmenities_ID";
            ddlGrupos.DataTextField = "S_GroupAmenities_Name";
            ddlGrupos.DataBind();
        }


        #endregion

        #region CRUD Pais

        protected void CadastrarPais(object sender, EventArgs e)
        {
            try
            {
                PaisDAL p = new PaisDAL();

                if (txtCodigoPais.Text != "")
                {
                    txtCodigoPais.Text = "";
                    txtNomePais.Text = "";
                    txtUFPais.Text = "";
                    lblMsgCadPais.Text = "";
                    btnSalvarPais.Text = "Salvar";
                    txtNomePais.Focus();
                    return;
                }

                if (p.ObterPorNome(txtNomePais.Text))
                {
                    MostrarMsg("Já existe país cadastrado com esse nome, tente outro.");
                    return;
                }

                Pai d = new Pai();

                d.PAIS_nome = txtNomePais.Text;
                d.PAIS_uf = txtUFPais.Text;

                p.Salvar(d);
                //lblMsgCadPais.Text = "Registro cadastrado com sucesso.";
                //ScriptManager.RegisterStartupScript(this, typeof(string), "popup", "alert('Registro cadastrado com sucesso.');", true);
                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomePais.Text = "";
                txtUFPais.Text = "";
                txtCodigoPais.Text = "";
                PopularGridPais(txtNomePais.Text);
                txtNomePais.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadPais.Text = ex.Message;
            }
        }

        protected void AtualizarPais(object sender, EventArgs e)
        {
            try
            {
                PaisDAL p = new PaisDAL();

                if (txtCodigoPais.Text == "")
                {
                    MostrarMsg("Selecione um país para ser atualizado.");
                    return;
                }

                Pai d = new Pai();

                d.PAIS_id = Convert.ToInt32(txtCodigoPais.Text);
                d.PAIS_nome = txtNomePais.Text;
                d.PAIS_uf = txtUFPais.Text;

                p.Atualizar(d);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodigoPais.Text = "";
                txtNomePais.Text = "";
                txtUFPais.Text = "";
                lblMsgCadPais.Text = "";
                btnSalvarPais.Text = "Salvar";
                PopularGridPais(txtNomePais.Text);
                txtNomePais.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadPais.Text = ex.Message;
            }
        }

        protected void ExcluirPais(object sender, CommandEventArgs e)
        {
            int myId = Convert.ToInt32(e.CommandArgument);

            try
            {
                PaisDAL p = new PaisDAL();

                Pai d = p.ObterPorId(myId);
                p.Excluir(d);
                //lblMsgCadPais.Text = "Registro excluído com sucesso.";
                MostrarMsg("Registro excluído com sucesso.");
                txtNomePais.Text = "";
                txtUFPais.Text = "";
                PopularGridPais(txtNomePais.Text);

            }
            catch (Exception ex)
            {
                lblMsgCadPais.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Cidade

        protected void CadastrarCidade(object sender, EventArgs e)
        {
            try
            {
                CidadeDAL p = new CidadeDAL();

                if (txtCodigoCidade.Text != "")
                {
                    txtCodigoCidade.Text = "";
                    txtNomeCidade.Text = "";
                    txtCidadeUF.Text = "";
                    txtCodIata.Text = "";
                    lblMsgCadCidade.Text = "";
                    txtObsTarifario.Text = "";
                    btnSalvarCidade.Text = "Salvar";
                    txtNomeCidade.Focus();
                    return;
                }

                if (p.VerificaNome(txtNomeCidade.Text))
                {
                    MostrarMsg("Já existe cidade cadastrado com esse nome, tente outro.");
                    return;
                }

                Cidade c = new Cidade();

                c.CID_nome = txtNomeCidade.Text;
                c.CID_cod_Iata = txtCodIata.Text;
                c.CID_uf = txtCidadeUF.Text;
                c.PAIS_id = Convert.ToInt32(ddlPaisCidade.SelectedValue);

                c.ObsTarifario = txtObsTarifario.Text;

                p.Salvar(c);

                //lblMsgCadCidade.Text = "Registro cadastrado com sucesso.";
                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeCidade.Text = "";
                txtCidadeUF.Text = "";
                txtCodIata.Text = "";
                PopularGridCidade(txtNomeCidade.Text);
                txtNomeCidade.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadCidade.Text = ex.Message;
            }
        }

        protected void AtualizarCidade(object sender, EventArgs e)
        {
            try
            {
                CidadeDAL p = new CidadeDAL();

                if (txtCodigoCidade.Text == "")
                {
                    MostrarMsg("Selecione uma cidade para ser atualizada.");
                    return;
                }

                Cidade c = new Cidade();

                c.CID_id = Convert.ToInt32(txtCodigoCidade.Text);
                c.CID_nome = txtNomeCidade.Text;
                c.CID_cod_Iata = txtCodIata.Text;
                c.CID_uf = txtCidadeUF.Text;
                c.PAIS_id = Convert.ToInt32(ddlPaisCidade.SelectedValue);

                c.ObsTarifario = txtObsTarifario.Text;

                p.Atualizar(c);

                MostrarMsg("Registro atualizado com sucesso.");
                txtCodigoCidade.Text = "";
                txtNomeCidade.Text = "";
                txtCidadeUF.Text = "";
                txtCodIata.Text = "";
                lblMsgCadCidade.Text = "";
                btnSalvarCidade.Text = "Salvar";
                PopularGridCidade(txtNomeCidade.Text);
                txtNomeCidade.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadCidade.Text = ex.Message;
            }
        }

        protected void ExcluirCidade(object sender, CommandEventArgs e)
        {
            try
            {

                CidadeDAL d = new CidadeDAL();
                SupplierDAL sd = new SupplierDAL();


                int myid = Convert.ToInt32(e.CommandArgument);

                if (sd.VerificaAgregado(myid))
                {
                    MostrarMsg("Esta cidade está agregada há outros cadastros, não pode ser excluída.");
                    return;
                }

                Cidade c = d.ObterPorId(myid);
                d.Excluir(c);

                MostrarMsg("Registro excluído com sucesso.");
                PopularGridCidade(txtNomeCidade.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadCidade.Text = ex.Message;
            }
        }

        protected void txtNomeCidade_TextChanged(object sender, EventArgs e)
        {
            try
            {

                CidadeDAL cd = new CidadeDAL();

                if (cd.VerificaNome(txtNomeCidade.Text))
                {
                    imgCidadeOk.ImageUrl = "/images/Icones/close.png";
                    imgCidadeOk.ToolTip = "Cidade já cadastrada tente outra.";
                    txtNomeCidade.Focus();
                }
                else
                {
                    imgCidadeOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgCidadeOk.ToolTip = "Cidade não cadastrada.";
                    txtCodIata.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadCidade.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Mercado

        protected void CadastrarMercado(object sender, EventArgs e)
        {
            try
            {
                MercadoDAL p = new MercadoDAL();

                if (txtCodigoMercado.Text != "")
                {
                    txtCodigoMercado.Text = "";
                    txtNomeMercado.Text = "";
                    lblMsgCadMercado.Text = "";
                    btnSalvarMercado.Text = "Salvar";
                    txtNomeMercado.Focus();
                    return;
                }

                if (p.ObterPorNome(txtNomeMercado.Text))
                {
                    MostrarMsg("Já existe mercado cadastrado com esse nome, tente outro.");
                    return;
                }

                Mercado m = new Mercado();

                m.Mercado_nome = txtNomeMercado.Text;

                p.Salvar(m);
                //lblMsgCadMercado.Text = "Registro cadastrado com sucesso.";
                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeMercado.Text = "";
                PopularGridMercados(txtNomeMercado.Text);
                txtNomeMercado.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadMercado.Text = ex.Message;
            }
        }

        protected void AtualizarMercado(object sender, EventArgs e)
        {
            try
            {
                if (txtCodigoMercado.Text == "")
                {
                    MostrarMsg("Selecione um mercado para ser atualizado.");
                    return;
                }

                Mercado m = new Mercado();

                m.Mercado_id = Convert.ToInt32(txtCodigoMercado.Text);
                m.Mercado_nome = txtNomeMercado.Text;

                MercadoDAL p = new MercadoDAL();
                p.Atualizar(m);

                MostrarMsg("Registro atualizado com sucesso.");
                txtCodigoMercado.Text = "";
                txtNomeMercado.Text = "";
                lblMsgCadMercado.Text = "";
                btnSalvarMercado.Text = "Salvar";
                PopularGridMercados(txtNomeMercado.Text);
                txtNomeMercado.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadMercado.Text = ex.Message;
            }

        }

        protected void ExcluirMercado(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                int myid = Convert.ToInt32(e.CommandArgument);
                MercadoDAL m = new MercadoDAL();
                Mercado d = m.ObterPorId(myid);

                m.Excluir(d);
                //lblMsgCadMercado.Text = "Registro excluído com sucesso.";
                MostrarMsg("Registro excluído com sucesso.");
                PopularGridMercados(txtNomeMercado.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadMercado.Text = ex.Message;
            }
        }

        protected void txtNomeMercado_TextChanged(object sender, EventArgs e)
        {
            try
            {
                MercadoDAL p = new MercadoDAL();

                if (p.ObterPorNome(txtNomeMercado.Text))
                {
                    imgNomeMercadoOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeMercadoOk.ToolTip = "Mercado já cadastrado tente outro.";
                    txtNomeMercado.Focus();
                }
                else
                {
                    imgNomeMercadoOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeMercadoOk.ToolTip = "Mercado não cadastrado.";
                    btnSalvarMercado.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadMercado.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD BaseTarifaria

        protected void CadastrarBaseTarifaria(object sender, EventArgs e)
        {
            try
            {
                BaseTarifariaDAL p = new BaseTarifariaDAL();

                if (txtCodigoBaseTarifaria.Text != "")
                {
                    txtCodigoBaseTarifaria.Text = "";
                    txtNomeBaseTarifaria.Text = "";
                    lblMsgCadBaseTarifaria.Text = "";
                    btnSalvarBaseTarifaria.Text = "Salvar";
                    txtNomeBaseTarifaria.Focus();
                    return;
                }

                if (p.ObterPorNome(txtNomeBaseTarifaria.Text))
                {
                    MostrarMsg("Já existe base tarifária cadastrada com esse nome, tente outra.");
                    return;
                }

                BaseTarifaria b = new BaseTarifaria();

                b.BaseTarifaria_nome = txtNomeBaseTarifaria.Text;

                p.Salvar(b);
                //lblMsgCadBaseTarifaria.Text = "Registro cadastrado com sucesso.";
                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeBaseTarifaria.Text = "";
                PopularGridBaseTarifarias(txtNomeBaseTarifaria.Text);
                txtNomeBaseTarifaria.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadBaseTarifaria.Text = ex.Message;
            }
        }

        protected void AtualizarBaseTarifaria(object sender, EventArgs e)
        {
            try
            {
                if (txtCodigoBaseTarifaria.Text == "")
                {
                    MostrarMsg("Selecione uma base tarifária para ser atualizada.");
                    return;
                }

                BaseTarifariaDAL p = new BaseTarifariaDAL();
                BaseTarifaria b = new BaseTarifaria();

                b.BaseTarifaria_id = Convert.ToInt32(txtCodigoBaseTarifaria.Text);
                b.BaseTarifaria_nome = txtNomeBaseTarifaria.Text;

                p.Atualizar(b);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodigoBaseTarifaria.Text = "";
                txtNomeBaseTarifaria.Text = "";
                lblMsgCadBaseTarifaria.Text = "";
                btnSalvarBaseTarifaria.Text = "Salvar";
                PopularGridBaseTarifarias(txtNomeBaseTarifaria.Text);
                txtNomeBaseTarifaria.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadBaseTarifaria.Text = ex.Message;
            }
        }

        protected void ExcluirBaseTarifaria(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                int myid = Convert.ToInt32(e.CommandArgument);
                BaseTarifariaDAL b = new BaseTarifariaDAL();
                BaseTarifaria d = b.ObterPorId(myid);
                b.Excluir(d);
                //lblMsgCadBaseTarifaria.Text = "Registro excluído com sucesso.";
                MostrarMsg("Registro excluído com sucesso.");
                PopularGridBaseTarifarias(txtNomeBaseTarifaria.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadBaseTarifaria.Text = ex.Message;
            }
        }

        protected void txtNomeBaseTarifaria_TextChanged(object sender, EventArgs e)
        {
            try
            {
                BaseTarifariaDAL p = new BaseTarifariaDAL();

                if (p.ObterPorNome(txtNomeBaseTarifaria.Text))
                {
                    imgNomeBaseTarifariaOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeBaseTarifariaOk.ToolTip = "Base tarifária já cadastrada tente outra.";
                    txtNomeBaseTarifaria.Focus();
                }
                else
                {
                    imgNomeBaseTarifariaOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeBaseTarifariaOk.ToolTip = "Base tarifária não cadastrada.";
                    btnSalvarBaseTarifaria.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadBaseTarifaria.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Moeda

        protected void CadastrarMoeda(object sender, EventArgs e)
        {
            try
            {
                MoedaDAL p = new MoedaDAL();

                if (txtCodigoMoeda.Text != "")
                {
                    txtCodigoMoeda.Text = "";
                    txtNomeMoeda.Text = "";
                    txtSiglaMoeda.Text = "";
                    lblMsgCadMoeda.Text = "";
                    btnSalvarMoeda.Text = "Salvar";
                    txtNomeMoeda.Focus();
                    return;
                }

                if (p.ObterPorNome(txtNomeMoeda.Text))
                {
                    MostrarMsg("Já existe moeda cadastrada com esse nome, tente outra.");
                    return;
                }

                Moeda m = new Moeda();

                m.Moeda_nome = txtNomeMoeda.Text;
                m.Moeda_sigla = txtSiglaMoeda.Text;

                p.Salvar(m);
                //lblMsgCadMoeda.Text = "Registro cadastrado com sucesso.";
                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeMoeda.Text = "";
                txtSiglaMoeda.Text = "";
                txtCodigoMoeda.Text = "";
                PopularGridMoeda(sender, e);
                txtNomeMoeda.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadMoeda.Text = ex.Message;
            }
        }

        protected void AtualizarMoeda(object sender, EventArgs e)
        {
            try
            {
                MoedaDAL p = new MoedaDAL();

                if (txtCodigoMoeda.Text == "")
                {
                    MostrarMsg("Selecione uma moeda para ser atualizada.");
                    return;
                }

                Moeda d = new Moeda();

                d.Moeda_id = Convert.ToInt32(txtCodigoMoeda.Text);
                d.Moeda_nome = txtNomeMoeda.Text;
                d.Moeda_sigla = txtSiglaMoeda.Text;

                p.Atualizar(d);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodigoMoeda.Text = "";
                txtNomeMoeda.Text = "";
                txtSiglaMoeda.Text = "";
                lblMsgCadMoeda.Text = "";
                btnSalvarMoeda.Text = "Salvar";
                PopularGridMoeda(sender, e);
                txtNomeMoeda.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadMoeda.Text = ex.Message;
            }
        }

        protected void ExcluirMoeda(object sender, CommandEventArgs e)
        {
            int myId = Convert.ToInt32(e.CommandArgument);

            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                MoedaDAL p = new MoedaDAL();

                Moeda d = p.ObterPorId(myId);
                p.Excluir(d);
                //lblMsgCadMoeda.Text = "Registro excluído com sucesso.";
                MostrarMsg("Registro excluído com sucesso.");
                txtNomeMoeda.Text = "";
                txtSiglaMoeda.Text = "";
                PopularGridMoeda(sender, e);
            }
            catch (Exception ex)
            {
                lblMsgCadMoeda.Text = ex.Message;
            }
        }

        protected void txtNomeMoeda_TextChanged(object sender, EventArgs e)
        {
            try
            {
                MoedaDAL p = new MoedaDAL();

                if (p.ObterPorNome(txtNomeMoeda.Text))
                {
                    imgNomeMoedaOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeMoedaOk.ToolTip = "Moeda já cadastrada tente outra.";
                    txtNomeMoeda.Focus();
                }
                else
                {
                    imgNomeMoedaOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeMoedaOk.ToolTip = "Moeda não cadastrada.";
                    txtSiglaMoeda.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadMoeda.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Redes

        protected void CadastrarRede(object sender, EventArgs e)
        {
            try
            {
                RedeDAL p = new RedeDAL();

                if (txtCodigoRedes.Text != "")
                {
                    txtCodigoRedes.Text = "";
                    txtNomeRede.Text = "";
                    txtEnderecoRede.Text = "";
                    txtCnpjRede.Text = "";
                    txtTelefoneRede.Text = "";
                    txtEmailRede.Text = "";
                    lblMsgCadRedes.Text = "";
                    btnSalvarRede.Text = "Salvar";
                    txtNomeRede.Focus();
                    return;
                }

                if (p.ObterPorNome(txtNomeRede.Text))
                {
                    MostrarMsg("Já existe rede cadastrada com esse nome, tente outra.");
                    return;
                }

                S_Rede m = new S_Rede();

                m.Rede_nome = txtNomeRede.Text;
                m.Rede_endereco = txtEnderecoRede.Text;
                m.Rede_cnpj = txtCnpjRede.Text;
                m.Rede_telefone = txtTelefoneRede.Text;
                m.Rede_email = txtEmailRede.Text;

                p.Salvar(m);
                //lblMsgCadRedes.Text = "Registro cadastrado com sucesso.";
                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeRede.Text = "";
                txtEnderecoRede.Text = "";
                txtCnpjRede.Text = "";
                txtTelefoneRede.Text = "";
                txtEmailRede.Text = "";
                txtCodigoRedes.Text = "";
                PopularGridRedes(txtNomeRede.Text);
                txtNomeRede.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadRedes.Text = ex.Message;
            }
        }

        protected void AtualizarRede(object sender, EventArgs e)
        {
            try
            {
                RedeDAL p = new RedeDAL();

                if (txtCodigoRedes.Text == "")
                {
                    MostrarMsg("Selecione uma rede para ser atualizada.");
                    return;
                }

                S_Rede m = new S_Rede();

                m.Rede_id = Convert.ToInt32(txtCodigoRedes.Text);
                m.Rede_nome = txtNomeRede.Text;
                m.Rede_endereco = txtEnderecoRede.Text;
                m.Rede_cnpj = txtCnpjRede.Text;
                m.Rede_telefone = txtTelefoneRede.Text;
                m.Rede_email = txtEmailRede.Text;

                p.Atualizar(m);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodigoRedes.Text = "";
                txtNomeRede.Text = "";
                txtEnderecoRede.Text = "";
                txtCnpjRede.Text = "";
                txtTelefoneRede.Text = "";
                txtEmailRede.Text = "";
                lblMsgCadRedes.Text = "";
                btnSalvarRede.Text = "Salvar";
                PopularGridRedes(txtNomeRede.Text);
                txtNomeRede.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadRedes.Text = ex.Message;
            }
        }

        protected void ExcluirRede(object sender, CommandEventArgs e)
        {
            int myId = Convert.ToInt32(e.CommandArgument);

            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;


                RedeDAL p = new RedeDAL();

                S_Rede d = p.ObterPorId(myId);
                p.Excluir(d);
                //lblMsgCadRedes.Text = "Registro excluído com sucesso.";
                MostrarMsg("Registro excluído com sucesso.");
                txtNomeRede.Text = "";
                txtEnderecoRede.Text = "";
                txtCnpjRede.Text = "";
                txtTelefoneRede.Text = "";
                txtEmailRede.Text = "";
                PopularGridRedes(txtNomeRede.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadRedes.Text = ex.Message;
            }
        }

        protected void txtNomeRede_TextChanged(object sender, EventArgs e)
        {
            try
            {
                RedeDAL p = new RedeDAL();

                if (p.ObterPorNome(txtNomeRede.Text))
                {
                    imgNomeRedeOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeRedeOk.ToolTip = "Rede já cadastrada tente outra.";
                    txtNomeRede.Focus();
                }
                else
                {
                    imgNomeRedeOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeRedeOk.ToolTip = "Rede não cadastrada.";
                    txtEnderecoRede.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadRedes.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD MEstacao

        protected void CadastrarMEstacao(object sender, EventArgs e)
        {
            try
            {
                MercadoEstacaoDAL p = new MercadoEstacaoDAL();

                if (txtCodMEstacao.Text != "")
                {
                    txtCodMEstacao.Text = "";
                    txtNomeEstacao.Text = "";
                    lblMsgCadMEstacao.Text = "";
                    btnSalvarMEstacao.Text = "Salvar";
                    txtNomeEstacao.Focus();
                    return;
                }

                if (p.VerificaExiste(txtNomeEstacao.Text))
                {
                    MostrarMsg("Já existe estação/pacote cadastrado com esse nome, tente outro.");
                    //lblMsgCadMEstacao.Text = "Já existe estação/pacote cadastrado com esse nome, tente outro.";
                    return;
                }

                S_Mercado_Estacao m = new S_Mercado_Estacao();

                m.S_mercado_estacao_nome = txtNomeEstacao.Text;

                if (ddlTipoMercadoEstacao.SelectedValue.Equals("False"))
                {
                    m.S_mercado_estacao_pacote = null;
                }
                else
                {
                    m.S_mercado_estacao_pacote = true;
                }

                if (chkSeasonal.Checked) m.S_mercado_estacao_seasonal = true; else m.S_mercado_estacao_seasonal = null;

                p.Salvar(m);
                MostrarMsg("Registro cadastrado com sucesso.");
                //lblMsgCadMEstacao.Text = "Registro cadastrado com sucesso.";
                txtCodMEstacao.Text = "";
                txtNomeEstacao.Text = "";
                lblMsgCadMEstacao.Text = "";
                PopularGridMEstacao();
                txtNomeEstacao.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadMEstacao.Text = ex.Message;
            }
        }

        protected void AtualizarMEstacao(object sender, EventArgs e)
        {
            try
            {
                MercadoEstacaoDAL p = new MercadoEstacaoDAL();

                if (txtCodMEstacao.Text == "")
                {
                    MostrarMsg("Selecione uma temporada para ser atualizada.");
                    return;
                }

                S_Mercado_Estacao m = new S_Mercado_Estacao();

                m.S_mercado_estacao_id = Convert.ToInt32(txtCodMEstacao.Text);
                m.S_mercado_estacao_nome = txtNomeEstacao.Text;

                if (ddlTipoMercadoEstacao.SelectedValue.Equals("False"))
                {
                    m.S_mercado_estacao_pacote = null;
                }
                else
                {
                    m.S_mercado_estacao_pacote = true;
                }

                if (chkSeasonal.Checked) m.S_mercado_estacao_seasonal = true; else m.S_mercado_estacao_seasonal = null;

                p.Atualizar(m);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodMEstacao.Text = "";
                txtNomeEstacao.Text = "";
                lblMsgCadMEstacao.Text = "";
                btnSalvarMEstacao.Text = "Salvar";
                PopularGridMEstacao();
                txtNomeEstacao.Focus();
            }
            catch (Exception ex)
            {
                lblMsgCadMEstacao.Text = ex.Message;
            }
        }

        protected void ExcluirMEstacao(object sender, CommandEventArgs e)
        {
            int myId = Convert.ToInt32(e.CommandArgument);

            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                MercadoEstacaoDAL p = new MercadoEstacaoDAL();

                S_Mercado_Estacao d = p.ObterPorId(myId);
                p.Excluir(d);
                txtCodMEstacao.Text = "";
                txtNomeEstacao.Text = "";
                lblMsgCadMEstacao.Text = "";
                PopularGridMEstacao();
                //lblMsgCadMEstacao.Text = "Registro excluído com sucesso.";
                MostrarMsg("Registro excluído com sucesso.");
            }
            catch (Exception ex)
            {
                lblMsgCadMEstacao.Text = ex.Message;
            }
        }

        protected void txtNomeEstacao_TextChanged(object sender, EventArgs e)
        {
            try
            {
                MercadoEstacaoDAL p = new MercadoEstacaoDAL();

                if (p.VerificaNome(txtNomeEstacao.Text))
                {
                    imgNomeEstacaoOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeEstacaoOk.ToolTip = "Estação já cadastrada tente outra.";
                    txtNomeEstacao.Focus();
                }
                else
                {
                    imgNomeEstacaoOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeEstacaoOk.ToolTip = "Estação não cadastrada.";
                    ddlTipoMercadoEstacao.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadMEstacao.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Meal

        protected void CadastrarMeal(object sender, EventArgs e)
        {
            try
            {
                if (txtCodBreakFast.Text != "")
                {
                    txtCodBreakFast.Text = "";
                    txtNomeMeal.Text = "";
                    btnSalvarMeal.Text = "Salvar";
                    txtNomeMeal.Focus();
                    return;
                }

                S_Meal m = new S_Meal();

                m.S_meal_nome = txtNomeMeal.Text;

                BreakFastDAL bfd = new BreakFastDAL();
                bfd.Salvar(m);

                txtNomeMeal.Text = "";
                PopularGridMeal(txtNomeMeal.Text);
                MostrarMsg("Registro cadastrado com sucesso.");
            }
            catch (Exception ex)
            {
                lblMsgCadMeal.Text = ex.Message;
            }
        }

        protected void AtualizarMeal(object sender, EventArgs e)
        {
            try
            {
                if (txtCodBreakFast.Text == "")
                {
                    MostrarMsg("Selecione um breakfast para ser atualizado.");
                    return;
                }

                S_Meal m = new S_Meal();

                m.S_meal_id = Convert.ToInt32(txtCodBreakFast.Text);
                m.S_meal_nome = txtNomeMeal.Text;

                BreakFastDAL bfd = new BreakFastDAL();
                bfd.Atualizar(m);

                txtNomeMeal.Text = "";
                PopularGridMeal(txtNomeMeal.Text);
                MostrarMsg("Registro atualizado com sucesso.");
            }
            catch (Exception ex)
            {
                lblMsgCadMeal.Text = ex.Message;
            }
        }

        protected void ExcluirMeal(object sender, CommandEventArgs e)
        {
            int myId = Convert.ToInt32(e.CommandArgument);

            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;


                BreakFastDAL p = new BreakFastDAL();

                S_Meal d = p.ObterPorId(myId);
                p.Excluir(d);
                MostrarMsg("Registro excluído com sucesso.");
                txtNomeMeal.Text = "";
                PopularGridMeal(txtNomeMeal.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadRedes.Text = ex.Message;
            }
        }

        protected void txtNomeMeal_TextChanged(object sender, EventArgs e)
        {
            try
            {
                BreakFastDAL p = new BreakFastDAL();

                if (p.VerificaNome(txtNomeMeal.Text))
                {
                    imgNomeMealOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeMealOk.ToolTip = "Meal já cadastrado tente outro.";
                    txtNomeMeal.Focus();
                }
                else
                {
                    imgNomeMealOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeMealOk.ToolTip = "Meal não cadastrado.";
                    btnSalvarMeal.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadMeal.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Categoria

        protected void CadastrarCategoria(object sender, EventArgs e)
        {
            try
            {
                if (txtCodCategoria.Text != "")
                {
                    txtCodCategoria.Text = "";
                    txtNomeCategoria.Text = "";
                    lblMsgCadCategoria.Text = "";
                    btnSalvarCategoria.Text = "Salvar";
                    txtNomeCategoria.Focus();
                    return;
                }

                Tarif_Categoria tc = new Tarif_Categoria();

                tc.Tarif_categoria_nome = txtNomeCategoria.Text;

                TarifCategoriaDAL tcd = new TarifCategoriaDAL();

                tcd.Salvar(tc);
                MostrarMsg("Registro cadastrado com sucesso.");
                //lblMsgCadCategoria.Text = "Registro cadastrado com sucesso.";
                txtNomeCategoria.Text = "";

                PopularGridCategorias(txtNomeCategoria.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadCategoria.Text = ex.Message;
            }
        }

        protected void AtualizarCategoria(object sender, EventArgs e)
        {
            try
            {

                Tarif_Categoria tc = new Tarif_Categoria();

                if (txtCodCategoria.Text == "")
                {
                    MostrarMsg("Selecione uma categoria para ser atualizada.");
                    return;
                }

                tc.Tarif_categoria_id = Convert.ToInt32(txtCodCategoria.Text);
                tc.Tarif_categoria_nome = txtNomeCategoria.Text;

                TarifCategoriaDAL tcd = new TarifCategoriaDAL();

                tcd.Atualizar(tc);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodCategoria.Text = "";
                txtNomeCategoria.Text = "";
                lblMsgCadCategoria.Text = "";
                btnSalvarCategoria.Text = "Salvar";
                txtNomeCategoria.Focus();

                PopularGridCategorias(txtNomeCategoria.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadMoeda.Text = ex.Message;
            }
        }

        protected void ExcluirCategoria(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                int myid = Convert.ToInt32(e.CommandArgument);

                TarifCategoriaDAL tcd = new TarifCategoriaDAL();

                Tarif_Categoria tc = tcd.ObterPorId(myid);
                tcd.Excluir(tc);

                MostrarMsg("Registro excluído com sucesso.");

                PopularGridCategorias(txtNomeCategoria.Text);
                //lblMsgCadCategoria.Text = "Registro excluído com sucesso.";
            }
            catch (Exception ex)
            {
                lblMsgCadCategoria.Text = ex.Message;
            }
        }

        protected void txtNomeCategoria_TextChanged(object sender, EventArgs e)
        {
            try
            {
                TarifCategoriaDAL p = new TarifCategoriaDAL();

                if (p.VerificaExistente(txtNomeCategoria.Text))
                {
                    imgNomeCategoriaOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeCategoriaOk.ToolTip = "Categoria já cadastrada tente outra.";
                    txtNomeCategoria.Focus();
                }
                else
                {
                    imgNomeCategoriaOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeCategoriaOk.ToolTip = "Categoria não cadastrada.";
                    btnSalvarCategoria.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadCategoria.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Categoria Escrita

        protected void CadastrarCategEscrita(object sender, EventArgs e)
        {
            try
            {
                if (txtCodCategEscrita.Text != "")
                {
                    txtCodCategEscrita.Text = "";
                    txtNomeCategEscrita.Text = "";
                    lblMsgCadCategEscrita.Text = "";
                    btnSalvarCategEscrita.Text = "Salvar";
                    txtNomeCategEscrita.Focus();
                    return;
                }

                S_Categoria_Escrita sce = new S_Categoria_Escrita();

                sce.CategoriaEscrita_nome = txtNomeCategEscrita.Text;

                CategoriaEscritaDAL ced = new CategoriaEscritaDAL();

                ced.Salvar(sce);
                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeCategEscrita.Text = "";

                PopularGridCategEscrita(txtNomeCategEscrita.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadCategEscrita.Text = ex.Message;
            }
        }

        protected void AtualizarCategEscrita(object sender, EventArgs e)
        {
            try
            {
                S_Categoria_Escrita sce = new S_Categoria_Escrita();

                if (txtCodCategEscrita.Text == "")
                {
                    MostrarMsg("Selecione uma categoria hotel para ser atualizada.");
                    return;
                }

                sce.CategoriaEscrita_id = Convert.ToInt32(txtCodCategEscrita.Text);
                sce.CategoriaEscrita_nome = txtNomeCategEscrita.Text;

                CategoriaEscritaDAL ced = new CategoriaEscritaDAL();

                ced.Atualizar(sce);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodCategEscrita.Text = "";
                txtNomeCategEscrita.Text = "";
                lblMsgCadCategEscrita.Text = "";
                btnSalvarCategEscrita.Text = "Salvar";

                PopularGridCategEscrita(txtNomeCategEscrita.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadCategEscrita.Text = ex.Message;
            }
        }

        protected void ExcluirCategEscrita(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                int myid = Convert.ToInt32(e.CommandArgument);

                CategoriaEscritaDAL tcd = new CategoriaEscritaDAL();

                if (tcd.VerificaAgregado(myid))
                {
                    MostrarMsg("Esta categoria está agregada há outros cadastros, não pode ser excluída.");
                    return;
                }

                S_Categoria_Escrita tc = tcd.ObterPorId(myid);
                tcd.Excluir(tc);

                MostrarMsg("Registro excluído com sucesso.");

                PopularGridCategEscrita(txtNomeCategEscrita.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadCategEscrita.Text = ex.Message;
            }
        }

        protected void txtNomeCategEscrita_TextChanged(object sender, EventArgs e)
        {
            try
            {
                CategoriaEscritaDAL p = new CategoriaEscritaDAL();

                if (p.VerificaExistente(txtNomeCategEscrita.Text))
                {
                    imgNomeCategEscritaOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeCategEscritaOk.ToolTip = "Categoria hotel já cadastrada tente outra.";
                    txtNomeCategEscrita.Focus();
                }
                else
                {
                    imgNomeCategEscritaOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeCategEscritaOk.ToolTip = "Categoria hotel não cadastrada.";
                    btnSalvarCategEscrita.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadCategEscrita.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Classificação

        protected void CadastrarClass(object sender, EventArgs e)
        {
            if (txtCodClass.Text != "")
            {
                txtCodClass.Text = "";
                txtNomeClass.Text = "";
                lblMsgCadClass.Text = "";
                btnSalvarClass.Text = "Salvar";
                ImgCategoria.ImageUrl = "";
                txtNomeClass.Focus();
                return;
            }

            UploadFotoCategoria(sender, e);
        }

        protected void AtualizarClass(object sender, EventArgs e)
        {
            try
            {
                S_Categoria sc = new S_Categoria();
                CategoriaDAL s = new CategoriaDAL();

                if (!FileUploadCategoria.HasFile)
                {
                    sc.Categ_id = Convert.ToInt32(txtCodClass.Text);
                    sc.Categ_classificacao = txtNomeClass.Text;
                    sc.Categ_imgnome = ViewState["nomefotoclass"].ToString();

                    s.Atualizar(sc);
                    MostrarMsg("Registro atualizado com sucesso.");
                }
                else if (ValidarFotoCategoria())
                {
                    string foto = Convert.ToString(Guid.NewGuid().ToString("n") + ".jpg");

                    FileUploadCategoria.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/ImgCategorias/") + foto);

                    sc.Categ_id = Convert.ToInt32(txtCodClass.Text);
                    sc.Categ_classificacao = txtNomeClass.Text;
                    sc.Categ_imgnome = foto;

                    s.Salvar(sc);
                    MostrarMsg("Registro atualizado com sucesso.");
                    txtCodClass.Text = "";
                    txtNomeClass.Text = "";
                    lblMsgCadClass.Text = "";
                    btnSalvarClass.Text = "Salvar";
                    ImgCategoria.ImageUrl = "";
                }

                PopularGridClass(txtNomeClass.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadClass.Text = ex.Message;
            }

        }

        protected void UploadFotoCategoria(object sender, EventArgs e)
        {
            try
            {
                S_Categoria sc = new S_Categoria();
                CategoriaDAL s = new CategoriaDAL();

                FileUploadCategoria.Attributes.Add("OnClick", "javascript:document.forms[0].encoding = \"multipart/form-data\";");

                if (!FileUploadCategoria.HasFile)
                {
                    sc.Categ_classificacao = txtNomeClass.Text;
                    sc.Categ_imgnome = "semfoto.gif";

                    s.Salvar(sc);
                    MostrarMsg("Registro cadastrado com sucesso.");
                    txtCodClass.Text = "";
                    txtNomeClass.Text = "";
                    lblMsgCadClass.Text = "";
                }
                else if (ValidarFotoCategoria())
                {
                    string foto = Convert.ToString(Guid.NewGuid().ToString("n") + ".jpg");

                    FileUploadCategoria.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/ImgCategorias/") + foto);

                    sc.Categ_classificacao = txtNomeClass.Text;
                    sc.Categ_imgnome = foto;

                    s.Salvar(sc);
                    txtCodClass.Text = "";
                    txtNomeClass.Text = "";
                    lblMsgCadClass.Text = "";
                    btnSalvarClass.Text = "Salvar";
                    ImgCategoria.ImageUrl = "";
                    MostrarMsg("Registro cadastrado com sucesso.");
                }

                PopularGridClass(txtNomeClass.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadClass.Text = ex.Message;
            }
        }

        public bool ValidarFotoCategoria()
        {
            try
            {
                //Verificar se o Usuario preencheu o campo uplFoto
                if (FileUploadCategoria.HasFile) //HasFile -> Contem um Arquivo?
                {
                    //Verificar se o arquivo possui extensão .jpg
                    if (FileUploadCategoria.PostedFile.FileName.EndsWith(".jpg") || FileUploadCategoria.PostedFile.FileName.EndsWith(".gif"))
                    {
                        //Verificar o tamanho do Arquivo (Até 1MB)
                        if (FileUploadCategoria.PostedFile.ContentLength <= (1024 * 1024))
                        {
                            return true;
                        }
                        else
                        {
                            throw new Exception("Erro. Selecione apenas imagens de até 1MB");
                        }
                    }
                    else
                    {
                        throw new Exception("Erro. Selecione apenas imagens jpg ou gif.");
                    }
                }
                else
                {
                    throw new Exception("Erro. Informe um arquivo para Upload.");
                }
            }
            catch (Exception ex)
            {
                MostrarMsg(ex.Message);
                return false;
            }
        }

        protected void ExcluirClass(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;


                int myid = Convert.ToInt32(e.CommandArgument);

                CategoriaDAL tcd = new CategoriaDAL();

                if (tcd.VerificaAgregado(myid))
                {
                    MostrarMsg("Esta classificação está agregada há outros cadastros, não pode ser excluída.");
                    return;
                }

                S_Categoria tc = tcd.ObterPorId(myid);
                tcd.Excluir(tc);

                MostrarMsg("Registro excluído com sucesso.");

                PopularGridClass(txtNomeClass.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadClass.Text = ex.Message;
            }
        }

        protected void txtNomeClass_TextChanged(object sender, EventArgs e)
        {
            try
            {
                CategoriaDAL p = new CategoriaDAL();

                if (p.VerificaExistente(txtNomeClass.Text))
                {
                    imgNomeClassOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeClassOk.ToolTip = "Classificação já cadastrada tente outra.";
                    txtNomeClass.Focus();
                }
                else
                {
                    imgNomeClassOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeClassOk.ToolTip = "Classificação não cadastrada.";
                    FileUploadCategoria.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadClass.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Tipo Serv

        protected void CadastrarTipoServ(object sender, EventArgs e)
        {
            try
            {
                if (txtCodTipoServ.Text != "")
                {
                    txtCodTipoServ.Text = "";
                    txtNomeTipoServ.Text = "";
                    lblMsgCadTipoServ.Text = "";
                    btnSalvarTipoServ.Text = "Salvar";
                    txtNomeTipoServ.Focus();
                    return;
                }

                S_Servicos_Tipo tc = new S_Servicos_Tipo();

                tc.Tipo_Nome = txtNomeTipoServ.Text;


                ServicoTipoDAL std = new ServicoTipoDAL();

                std.Salvar(tc);
                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeTipoServ.Text = "";

                PopularGridTipoServ(txtNomeTipoServ.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadTipoServ.Text = ex.Message;
            }
        }

        protected void AtualizarTipoServ(object sender, EventArgs e)
        {
            try
            {

                S_Servicos_Tipo tc = new S_Servicos_Tipo();

                if (txtCodTipoServ.Text == "")
                {
                    MostrarMsg("Selecione um tipo de serviço para ser atualizado.");
                    return;
                }

                tc.Tipo_Id = Convert.ToInt32(txtCodTipoServ.Text);
                tc.Tipo_Nome = txtNomeTipoServ.Text;

                ServicoTipoDAL tcd = new ServicoTipoDAL();

                tcd.Atualizar(tc);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodTipoServ.Text = "";
                txtNomeTipoServ.Text = "";
                lblMsgCadTipoServ.Text = "";
                btnSalvarTipoServ.Text = "Salvar";
                txtNomeTipoServ.Focus();

                PopularGridTipoServ(txtNomeTipoServ.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadTipoServ.Text = ex.Message;
            }
        }

        protected void ExcluirTipoServ(object sender, CommandEventArgs e)
        {
            try
            {
                int myid = Convert.ToInt32(e.CommandArgument);

                ServicoTipoDAL tcd = new ServicoTipoDAL();

                S_Servicos_Tipo tc = tcd.ObterPorId(myid);
                tcd.Excluir(tc);

                MostrarMsg("Registro excluído com sucesso.");

                PopularGridTipoServ(txtNomeTipoServ.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadTipoServ.Text = ex.Message;
            }
        }

        protected void txtNomeTipoServ_TextChanged(object sender, EventArgs e)
        {
            try
            {
                ServicoTipoDAL std = new ServicoTipoDAL();

                if (std.VerificaNome(txtNomeTipoServ.Text))
                {
                    imgNomeTipoServOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeTipoServOk.ToolTip = "Tipo serviço já cadastrado tente outro.";
                    txtNomeTipoServ.Focus();
                }
                else
                {
                    imgNomeTipoServOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeTipoServOk.ToolTip = "Tipo serviço não cadastrado.";
                    btnSalvarTipoServ.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadTipoServ.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Tipo Serv Categ

        protected void CadastrarTipoServCateg(object sender, EventArgs e)
        {
            try
            {
                if (txtCodTipoServCateg.Text != "")
                {
                    txtCodTipoServCateg.Text = "";
                    txtNomeTipoServCateg.Text = "";
                    PopularDropTipoServ();
                    lblMsgCadTipoServCateg.Text = "";
                    btnSalvarTipoServCateg.Text = "Salvar";
                    txtNomeTipoServCateg.Focus();
                    return;
                }

                S_Servicos_Tipo_Categ tc = new S_Servicos_Tipo_Categ();

                tc.Tipo_categ_nome = txtNomeTipoServCateg.Text;
                tc.Tipo_Id = Convert.ToInt32(ddlTipoServ.SelectedValue);

                ServicoTipoCategDAL std = new ServicoTipoCategDAL();

                std.Salvar(tc);

                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeTipoServCateg.Text = "";

                PopularDropTipoServ();

                PopularGridTipoServCateg(txtNomeTipoServCateg.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadTipoServCateg.Text = ex.Message;
            }
        }

        protected void AtualizarTipoServCateg(object sender, EventArgs e)
        {
            try
            {

                S_Servicos_Tipo_Categ tc = new S_Servicos_Tipo_Categ();

                if (txtCodTipoServCateg.Text == "")
                {
                    MostrarMsg("Selecione uma categoria para ser atualizada.");
                    return;
                }

                tc.Tipo_categ_id = Convert.ToInt32(ddlTipoServ.SelectedValue);
                tc.Tipo_categ_nome = txtNomeTipoServCateg.Text;
                tc.Tipo_Id = Convert.ToInt32(ddlTipoServ.SelectedValue);

                ServicoTipoCategDAL tcd = new ServicoTipoCategDAL();

                tcd.Atualizar(tc);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodTipoServCateg.Text = "";
                txtNomeTipoServCateg.Text = "";
                lblMsgCadTipoServCateg.Text = "";
                btnSalvarTipoServCateg.Text = "Salvar";
                txtNomeTipoServCateg.Focus();

                PopularGridTipoServCateg(txtNomeTipoServCateg.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadTipoServCateg.Text = ex.Message;
            }
        }

        protected void ExluirTipoServCateg(object sender, CommandEventArgs e)
        {
            try
            {
                int myid = Convert.ToInt32(e.CommandArgument);

                ServicoTipoCategDAL tcd = new ServicoTipoCategDAL();

                S_Servicos_Tipo_Categ tc = tcd.ObterPorId(myid);
                tcd.Excluir(tc);

                MostrarMsg("Registro excluído com sucesso.");

                PopularGridTipoServCateg(txtNomeTipoServCateg.Text);
            }
            catch (Exception ex)
            {
                lblMsgCadTipoServCateg.Text = ex.Message;
            }
        }

        protected void txtNomeTipoServCateg_TextChanged(object sender, EventArgs e)
        {
            try
            {
                ServicoTipoCategDAL std = new ServicoTipoCategDAL();

                if (std.VerificaNome(txtNomeTipoServCateg.Text))
                {
                    imgNomeTipoServCategOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeTipoServCategOk.ToolTip = "Categoria já cadastrada tente outra.";
                    txtNomeTipoServCateg.Focus();
                }
                else
                {
                    imgNomeTipoServCategOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeTipoServCategOk.ToolTip = "Categoria não cadastrada.";
                    btnSalvarTipoServCateg.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadTipoServCateg.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD ItemSubServico

        protected void CadastrarItemSubServico(object sender, EventArgs e)
        {
            try
            {
                if (txtCodItemSubServico.Text != "")
                {
                    txtCodItemSubServico.Text = "";
                    txtNomeItemSubServico.Text = "";
                    lblMsgCadItemSubServico.Text = "";
                    btnSalvarItemSubServico.Text = "Salvar";
                    txtNomeItemSubServico.Focus();
                    return;
                }

                ItemSubServico tc = new ItemSubServico();

                tc.ItemSubServico_nome = txtNomeItemSubServico.Text;

                ItemSubServicoDAL std = new ItemSubServicoDAL();

                std.Salvar(tc);

                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeItemSubServico.Text = "";

                PopularGridItemSubServico();
            }
            catch (Exception ex)
            {
                lblMsgCadItemSubServico.Text = ex.Message;
            }
        }

        protected void AtualizarItemSubServico(object sender, EventArgs e)
        {
            try
            {

                ItemSubServico tc = new ItemSubServico();

                if (txtCodItemSubServico.Text == "")
                {
                    MostrarMsg("Selecione um item subserviço para ser atualizado.");
                    return;
                }

                tc.ItemSubServico_id = Convert.ToInt32(txtCodItemSubServico.Text);
                tc.ItemSubServico_nome = txtNomeItemSubServico.Text;

                ItemSubServicoDAL tcd = new ItemSubServicoDAL();

                tcd.Atualizar(tc);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodItemSubServico.Text = "";
                txtNomeItemSubServico.Text = "";
                lblMsgCadItemSubServico.Text = "";
                btnSalvarItemSubServico.Text = "Salvar";
                txtNomeItemSubServico.Focus();

                PopularGridItemSubServico();
            }
            catch (Exception ex)
            {
                lblMsgCadItemSubServico.Text = ex.Message;
            }
        }

        protected void ExluirItemSubServico(object sender, CommandEventArgs e)
        {
            try
            {
                int myid = Convert.ToInt32(e.CommandArgument);

                ItemSubServicoDAL tcd = new ItemSubServicoDAL();

                ItemSubServico tc = tcd.ObterPorId(myid);

                tcd.Excluir(tc);

                MostrarMsg("Registro excluído com sucesso.");

                PopularGridItemSubServico();
            }
            catch (Exception ex)
            {
                lblMsgCadItemSubServico.Text = ex.Message;
            }
        }

        protected void txtNomeItemSubServico_TextChanged(object sender, EventArgs e)
        {
            try
            {
                ItemSubServicoDAL std = new ItemSubServicoDAL();

                if (std.VerificaNome(txtNomeItemSubServico.Text))
                {
                    imgNomeItemSubServicoOk.ImageUrl = "/images/Icones/close.png";
                    imgNomeItemSubServicoOk.ToolTip = "Item já cadastrado tente outra.";
                    txtNomeItemSubServico.Focus();
                }
                else
                {
                    imgNomeItemSubServicoOk.ImageUrl = "/images/Icones/imgToolsOk.png";
                    imgNomeItemSubServicoOk.ToolTip = "Item não cadastrado.";
                    btnSalvarItemSubServico.Focus();
                }

            }
            catch (Exception ex)
            {
                lblMsgCadItemSubServico.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD SubItem SubServico

        protected void CadastrarSubItem(object sender, EventArgs e)
        {
            try
            {
                SubItemDAL std = new SubItemDAL();

                if (txtCodSubItem.Text != "")
                {
                    txtCodSubItem.Text = "";
                    txtNomeSubItem.Text = "";
                    lblMsgCadastroSubItem.Text = "";
                    btnSalvarSubItem.Text = "Salvar";
                    txtNomeSubItem.Focus();
                    return;
                }

                if (std.VerificaNome(txtNomeSubItem.Text))
                {
                    MostrarMsg("Já possui esse sub item cadastrado tente outro.");
                    return;
                }

                SubItem tc = new SubItem();

                tc.SubItem_nome = txtNomeSubItem.Text;


                std.Salvar(tc);

                MostrarMsg("Registro cadastrado com sucesso.");
                txtNomeSubItem.Text = "";

                PopularGridSubItem();
            }
            catch (Exception ex)
            {
                lblMsgCadastroSubItem.Text = ex.Message;
            }
        }

        protected void AtualizarSubItem(object sender, EventArgs e)
        {
            try
            {

                SubItem tc = new SubItem();

                if (txtCodSubItem.Text == "")
                {
                    MostrarMsg("Selecione um sub item para ser atualizado.");
                    return;
                }

                tc.SubItem_id = Convert.ToInt32(txtCodSubItem.Text);
                tc.SubItem_nome = txtNomeSubItem.Text;

                SubItemDAL tcd = new SubItemDAL();

                tcd.Atualizar(tc);
                MostrarMsg("Registro atualizado com sucesso.");
                txtCodSubItem.Text = "";
                txtNomeSubItem.Text = "";
                lblMsgCadastroSubItem.Text = "";
                btnSalvarSubItem.Text = "Salvar";
                txtNomeSubItem.Focus();

                PopularGridSubItem();
            }
            catch (Exception ex)
            {
                lblMsgCadastroSubItem.Text = ex.Message;
            }
        }

        protected void ExluirSubItem(object sender, CommandEventArgs e)
        {
            try
            {
                int myid = Convert.ToInt32(e.CommandArgument);

                SubItemDAL tcd = new SubItemDAL();

                SubItem tc = tcd.ObterPorId(myid);

                tcd.Excluir(tc);

                MostrarMsg("Registro excluído com sucesso.");

                PopularGridSubItem();
            }
            catch (Exception ex)
            {
                lblMsgCadastroSubItem.Text = ex.Message;
            }
        }

        #endregion

        #region CRUD Amenities

        protected void ExcluirAmenity(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                int myid = Convert.ToInt32(e.CommandArgument);

                AmenitiesDAL amDAL = new AmenitiesDAL();

                //if (amDAL.VerificarDependencias(myid))
                //{
                //    MostrarMsg("Esta classificação está agregada há outros cadastros, não pode ser excluída.");
                //    return;
                //}

                S_Amenities sa = amDAL.ObterPorID(myid);
                amDAL.Excluir(sa);
                MostrarMsg("Registro excluído com sucesso.");
                PopularAmenities();
            }
            catch (Exception ex)
            {
                lblMsgCadClass.Text = ex.Message;
            }
        }

        protected void btnSalvarAmenity_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtNomeAmenities.Text.Equals(string.Empty))
                    throw new ApplicationException("Digite o nome da amenity");

                fupImagemAmenities.Attributes.Add("OnClick", "javascript:document.forms[0].encoding = \"multipart/form-data\";");

                if (!ValidarFotoAmenity())
                    return;

                string extensao = "";

                if (fupImagemAmenities.PostedFile.FileName.EndsWith(".jpg"))
                    extensao = ".jpg";
                else if (fupImagemAmenities.PostedFile.FileName.EndsWith(".png"))
                    extensao = ".png";
                else if (fupImagemAmenities.PostedFile.FileName.EndsWith(".gif"))
                    extensao = ".gif";
                S_Amenities Amenity = new S_Amenities();
                Amenity.S_Amenities_nome = txtNomeAmenities.Text;
                Amenity.S_Amenities_imgNome = Guid.NewGuid().ToString("n") + extensao;
                Amenity.S_GroupAmenities_ID = Convert.ToInt32(ddlGrupos.SelectedItem.Value);

                new AmenitiesDAL().Salvar(Amenity);
                txtNomeAmenities.Text = "";

                fupImagemAmenities.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/iconsAmenities/") + Amenity.S_Amenities_imgNome);
                MostrarMsg("Registro cadastrado com sucesso.");

                PopularAmenities();
            }
            catch (Exception ex)
            {
                MostrarMsg(ex.Message);
            }
        }

        public bool ValidarFotoAmenity()
        {
            try
            {
                //Verificar se o Usuario preencheu o campo uplFoto
                if (fupImagemAmenities.HasFile) //HasFile -> Contem um Arquivo?
                {
                    //Verificar se o arquivo possui extensão .jpg
                    if (fupImagemAmenities.PostedFile.FileName.EndsWith(".jpg") ||
                        fupImagemAmenities.PostedFile.FileName.EndsWith(".gif") ||
                        fupImagemAmenities.PostedFile.FileName.EndsWith(".png"))
                    {
                        //Verificar o tamanho do Arquivo (Até 1MB)
                        if (fupImagemAmenities.PostedFile.ContentLength <= (1024 * 1024))
                        {
                            return true;
                        }
                        else
                        {
                            throw new Exception("Erro. Selecione apenas imagens de até 1MB");
                        }
                    }
                    else
                    {
                        throw new Exception("Erro. Selecione apenas imagens jpg, png ou gif.");
                    }
                }
                else
                {
                    throw new Exception("Erro. Informe um arquivo para Upload.");
                }
            }
            catch (Exception ex)
            {
                MostrarMsg(ex.Message);
                return false;
            }
        }

        protected void btnAtualizarAmenity_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtAmenityID.Text.Equals(string.Empty))
                    throw new ApplicationException("Escolha um item para editar!");

                if (txtNomeAmenities.Text.Equals(string.Empty))
                    throw new ApplicationException("Digite o nome da amenity");

                S_Amenities amenity = new AmenitiesDAL().ObterPorID(Convert.ToInt32(txtAmenityID.Text));

                amenity.S_Amenities_nome = txtNomeAmenities.Text;
                amenity.S_GroupAmenities_ID = Convert.ToInt32(ddlGrupos.SelectedItem.Value);

                if (ValidarFotoAmenity())
                {
                    amenity.S_Amenities_imgNome = Guid.NewGuid().ToString("n");
                    string extensao = "";

                    if (fupImagemAmenities.PostedFile.FileName.EndsWith(".jpg"))
                        extensao = ".jpg";
                    else if (fupImagemAmenities.PostedFile.FileName.EndsWith(".png"))
                        extensao = ".png";
                    else if (fupImagemAmenities.PostedFile.FileName.EndsWith(".gif"))
                        extensao = ".gif";

                    string foto = amenity.S_Amenities_imgNome + extensao;
                    fupImagemAmenities.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/ImgCategorias/") + foto);
                    MostrarMsg("Registro cadastrado com sucesso.");
                }
                else
                {

                }
            }
            catch (Exception ex)
            {
                MostrarMsg(ex.Message);
            }
        }

        #endregion

        #region Regras

        protected void EditarAmenity(object sender, CommandEventArgs e)
        {
            try
            {
                AmenitiesDAL amDAL = new AmenitiesDAL();
                S_Amenities am = amDAL.ObterPorID(Convert.ToInt32(e.CommandArgument));

                txtAmenityID.Text = am.S_Amenities_id.ToString();
                txtNomeAmenities.Text = am.S_Amenities_nome;
                //ddlGrupos.Items.FindByValue(am.S_GroupAmenities_ID.ToString()).Selected = true;

                ddlGrupos.SelectedValue = am.S_GroupAmenities_ID.ToString();
                imgAmenity.ImageUrl = "/iconsAmenities/" + am.S_Amenities_imgNome;

                //ResolveUrl("/iconsAmenities/" + am.S_Amenities_imgNome);
            }
            catch (Exception ex)
            {
                lblMsgCadBaseTarifaria.Text = ex.Message;
            }
        }

        protected void VoltarMenu(object sender, EventArgs e)
        {
            Response.Redirect("~/Pages/Index.aspx");
        }

        protected void EditarPais(object sender, CommandEventArgs e)
        {
            if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
                    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                return;

            try
            {
                btnSalvarPais.Text = "Novo";
                lblMsgCadPais.Text = "";

                PaisDAL p = new PaisDAL();

                Pai pa = p.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodigoPais.Text = Convert.ToString(pa.PAIS_id);
                txtNomePais.Text = pa.PAIS_nome;
                txtUFPais.Text = pa.PAIS_uf;

            }
            catch (Exception ex)
            {
                lblMsgCadPais.Text = ex.Message;
            }
        }

        protected void EditarCidade(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) || (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro)) return;


                btnSalvarCidade.Text = "Novo";
                lblMsgCadCidade.Text = "";

                CidadeDAL c = new CidadeDAL();

                Cidade cid = c.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodigoCidade.Text = Convert.ToString(cid.CID_id);
                txtNomeCidade.Text = cid.CID_nome;
                txtCidadeUF.Text = cid.CID_uf;
                txtCodIata.Text = cid.CID_cod_Iata;
                ddlPaisCidade.SelectedValue = Convert.ToString(cid.PAIS_id);
                txtObsTarifario.Text = cid.ObsTarifario;

            }
            catch (Exception ex)
            {
                lblMsgCadCidade.Text = ex.Message;
            }
        }

        protected void EditarMercado(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                btnSalvarMercado.Text = "Novo";
                lblMsgCadMercado.Text = "";

                MercadoDAL m = new MercadoDAL();

                Mercado d = m.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodigoMercado.Text = d.Mercado_id.ToString();
                txtNomeMercado.Text = d.Mercado_nome;

            }
            catch (Exception ex)
            {
                lblMsgCadMercado.Text = ex.Message;
            }
        }

        protected void EditarBaseTarifaria(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;


                btnSalvarBaseTarifaria.Text = "Novo";
                lblMsgCadBaseTarifaria.Text = "";

                BaseTarifariaDAL b = new BaseTarifariaDAL();
                BaseTarifaria d = b.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodigoBaseTarifaria.Text = d.BaseTarifaria_id.ToString();
                txtNomeBaseTarifaria.Text = d.BaseTarifaria_nome;

            }
            catch (Exception ex)
            {
                lblMsgCadBaseTarifaria.Text = ex.Message;
            }
        }

        protected void EditarMoeda(object sender, CommandEventArgs e)
        {
            try
            {

                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;


                btnSalvarMoeda.Text = "Novo";
                lblMsgCadMoeda.Text = "";

                MoedaDAL d = new MoedaDAL();
                Moeda b = d.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodigoMoeda.Text = b.Moeda_id.ToString();
                txtNomeMoeda.Text = b.Moeda_nome;
                txtSiglaMoeda.Text = b.Moeda_sigla;

            }
            catch (Exception ex)
            {
                lblMsgCadBaseTarifaria.Text = ex.Message;
            }
        }

        protected void EditaRedes(object sender, CommandEventArgs e)
        {
            try
            {

                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;


                btnSalvarRede.Text = "Novo";
                lblMsgCadRedes.Text = "";

                RedeDAL d = new RedeDAL();
                S_Rede b = d.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodigoRedes.Text = b.Rede_id.ToString();
                txtNomeRede.Text = b.Rede_nome;
                txtEnderecoRede.Text = b.Rede_endereco;
                txtCnpjRede.Text = b.Rede_cnpj;
                txtTelefoneRede.Text = b.Rede_telefone;
                txtEmailRede.Text = b.Rede_email;

            }
            catch (Exception ex)
            {
                lblMsgCadRedes.Text = ex.Message;
            }
        }

        protected void EditarMEstacao(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;


                btnSalvarMEstacao.Text = "Novo";
                lblMsgCadMEstacao.Text = "";

                MercadoEstacaoDAL d = new MercadoEstacaoDAL();
                S_Mercado_Estacao b = d.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodMEstacao.Text = b.S_mercado_estacao_id.ToString();
                txtNomeEstacao.Text = b.S_mercado_estacao_nome;

                if (b.S_mercado_estacao_pacote.Equals(true))
                {
                    ddlTipoMercadoEstacao.SelectedValue = b.S_mercado_estacao_pacote.ToString();
                }
                else
                {
                    ddlTipoMercadoEstacao.SelectedValue = "False";
                }

            }
            catch (Exception ex)
            {
                lblMsgCadMEstacao.Text = ex.Message;
            }
        }

        protected void EditarCategoria(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                btnSalvarCategoria.Text = "Novo";
                lblMsgCadCategoria.Text = "";

                TarifCategoriaDAL tcd = new TarifCategoriaDAL();
                Tarif_Categoria tc = tcd.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodCategoria.Text = tc.Tarif_categoria_id.ToString();
                txtNomeCategoria.Text = tc.Tarif_categoria_nome;

            }
            catch (Exception ex)
            {
                lblMsgCadCategoria.Text = ex.Message;
            }
        }

        protected void EditarCategoriaEscrita(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                btnSalvarCategEscrita.Text = "Novo";
                lblMsgCadCategEscrita.Text = "";

                CategoriaEscritaDAL ced = new CategoriaEscritaDAL();
                S_Categoria_Escrita b = ced.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodCategEscrita.Text = b.CategoriaEscrita_id.ToString();
                txtNomeCategEscrita.Text = b.CategoriaEscrita_nome;
            }
            catch (Exception ex)
            {
                lblMsgCadCategEscrita.Text = ex.Message;
            }
        }

        protected void EditarClass(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;


                btnSalvarClass.Text = "Novo";
                lblMsgCadClass.Text = "";

                CategoriaDAL cd = new CategoriaDAL();

                S_Categoria sc = cd.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodClass.Text = sc.Categ_id.ToString();
                txtNomeClass.Text = sc.Categ_classificacao;
                ImgCategoria.ImageUrl = "/ImgCategorias/" + sc.Categ_imgnome;
                ViewState["nomefotoclass"] = sc.Categ_imgnome;

            }
            catch (Exception ex)
            {
                lblMsgCadClass.Text = ex.Message;
            }
        }

        protected void EditarMeal(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;


                btnSalvarMeal.Text = "Novo";
                lblMsgCadMeal.Text = "";

                BreakFastDAL cd = new BreakFastDAL();

                S_Meal sc = cd.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodBreakFast.Text = sc.S_meal_id.ToString();
                txtNomeMeal.Text = sc.S_meal_nome;

            }
            catch (Exception ex)
            {
                lblMsgCadMeal.Text = ex.Message;
            }
        }

        protected void EditarTipoServ(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                btnSalvarTipoServ.Text = "Novo";
                lblMsgCadTipoServ.Text = "";

                ServicoTipoDAL cd = new ServicoTipoDAL();

                S_Servicos_Tipo sc = cd.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodTipoServ.Text = sc.Tipo_Id.ToString();
                txtNomeTipoServ.Text = sc.Tipo_Nome;

            }
            catch (Exception ex)
            {
                lblMsgCadTipoServ.Text = ex.Message;
            }
        }

        protected void EditarTipoServCateg(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;

                btnSalvarTipoServCateg.Text = "Novo";
                lblMsgCadTipoServCateg.Text = "";

                ServicoTipoCategDAL cd = new ServicoTipoCategDAL();

                S_Servicos_Tipo_Categ sc = cd.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodTipoServCateg.Text = sc.Tipo_categ_id.ToString();
                txtNomeTipoServCateg.Text = sc.Tipo_categ_nome;
                ddlTipoServ.SelectedValue = sc.Tipo_Id.ToString();

            }
            catch (Exception ex)
            {
                lblMsgCadTipoServCateg.Text = ex.Message;
            }
        }

        protected void EditarItemSubServico(object sender, CommandEventArgs e)
        {
            try
            {
                if ((base.ObterPerfilLogado() == (int)PerfilUsuario.Operacional) ||
    (base.ObterPerfilLogado() == (int)PerfilUsuario.Financeiro))
                    return;
                        
                btnSalvarItemSubServico.Text = "Novo";
                lblMsgCadItemSubServico.Text = "";

                ItemSubServicoDAL cd = new ItemSubServicoDAL();

                ItemSubServico sc = cd.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodItemSubServico.Text = sc.ItemSubServico_id.ToString();
                txtNomeItemSubServico.Text = sc.ItemSubServico_nome;

            }
            catch (Exception ex)
            {
                lblMsgCadItemSubServico.Text = ex.Message;
            }
        }

        protected void EditarSubItem(object sender, CommandEventArgs e)
        {
            try
            {
                btnSalvarSubItem.Text = "Novo";
                lblMsgCadastroSubItem.Text = "";

                SubItemDAL cd = new SubItemDAL();

                SubItem sc = cd.ObterPorId(Convert.ToInt32(e.CommandArgument));

                txtCodSubItem.Text = sc.SubItem_id.ToString();
                txtNomeSubItem.Text = sc.SubItem_nome;

            }
            catch (Exception ex)
            {
                lblMsgCadastroSubItem.Text = ex.Message;
            }
        }

        #endregion

        protected void MostrarMsg(string Msg)
        {
            ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "call me", "showAutoCloseMessage('" + Msg + "')", true);
        }

    }
}